DALI: An Untyped, CBV Functional Language Supporting First-Order Datatypes with Binders
نویسندگان
چکیده
Writing (meta-)programs that manipulate other (object-) programs poses signi cant technical problems when the objectlanguage itself has a notion of binders and variable occurrences. Higher-order abstract syntax is a representation of object programs that has recently been the focus of several studies. This paper points out a number of limitations of using higher order syntax in a functional context, and argues that DALI, a language based on a simple and elegant proposal made by Dale Miller ten years ago can provide superior support for manipulating such object-languages. Miller's original proposal, however, did not provide any formal treatment. To ll this gap, we present both a big-step and a reduction semantics for DALI, and summarize the results of our extensive study of the semantics, including the rather involved proof of the soundness of the reduction semantics with respect to the big-step semantics. Because our formal development is carried out for the untyped version of the language, we hope it will serve as a solid basis for investigating type system(s) for DALI.
منابع مشابه
Nested Datatypes with Generalized Mendler Iteration: Map Fusion and the Example of the Representation of Untyped Lambda Calculus with Explicit Flattening
Nested datatypes are families of datatypes that are indexed over all types such that the constructors may relate different family members. Moreover, the argument types of the constructors refer to indices given by expressions where the family name may occur. Especially in this case of true nesting, there is no direct support by theorem provers to guarantee termination of functions that traverse...
متن کاملCall-by-Value Termination in the Untyped lambda-Calculus
A fully-automated algorithm is developed able to show that evaluation of a given untyped λ-expression will terminate under CBV (call-by-value). The “size-change principle” from first-order programs is extended to arbitrary untyped λ-expressions in two steps. The first step suffices to show CBV termination of a single, stand-alone λexpression. The second suffices to show CBV termination of any m...
متن کاملSome Domain Theory and Denotational Semantics in Coq
We present a Coq formalization of constructive ω-cpos (extending earlier work by Paulin-Mohring) up to and including the inverselimit construction of solutions to mixed-variance recursive domain equations, and the existence of invariant relations on those solutions. We then define operational and denotational semantics for both a simplytyped CBV language with recursion and an untyped CBV langua...
متن کاملConversion by Evaluation
We show how testing convertibility of two types in dependently typed systems can advantageously be implemented instead untyped normalization by evaluation, thereby reusing existing compilers and runtime environments for stock functional languages, without peeking under the hood, for a fast yet cheap system in terms of implementation effort. Our focus is on performance of untyped normalization b...
متن کاملPrimitive Direcursion and Difunctorial Semantics of Typed Object Calculus
This thesis concerns two closely related lines of research: (i) We contribute to the semantics of typed object calculus by giving (a) a denotational semantics using partial maps making use of an algebraic compactness assumption on the ambient category, (b) a notion of “wrappers” by which algebraic datatypes can be represented as object types, and (c) proofs of computational soundness and adequa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005